Computer networks are widely used to connect multiple computer systems together for communicating and sharing information. Computer networks can also be used to implement multi-user applications that allow multiple users to share in the operation of a computer program. Common examples are video and teleconferencing applications, online multiplayer games which allow multiple users to play a game with one another and online chat environments. A problem common to all such multi-user network applications is providing an efficient way to bring together groups of users to join in the running of a multi-user application. Today, the known solutions deal only with the users requirements such as which other people they wish to be matched with. These solutions provide little more than manual methods for the users to select the other users that they wish to be matched with. This is workable only when there are reasonable numbers of users in the pool of all users. It becomes unworkable when there are large numbers of users and when the application has special requirements for network performance or capabilities of the client and/or server computer systems used to implement the application.
Networked applications for multiple clients exist in three forms. Peer-to-peer applications are executed by multiple client computers with no server or servers required. All communication traffic during the execution of the application is directed between the clients. Other multiple client networked applications use a single server system. The server may execute some portion of the application that is to be shared by all of the clients while the remainder of the application is executed on the clients. The server can also act as a communications collection point. Some or all of the communication traffic is between each of the clients and the server. The clients may additionally communicate with one another as needed. Finally, multiple servers may be used in a multiple client application. Similar to the case of a single server, a portion of the application may be executed on the servers. The multiple servers can also provide communications collection points for the clients.
In the present invention, a network match making system is used to create matched sets of users of a multi-user networked application. Each user is associated with a client computer connected to a network. Also on the network is a server computer which executes a software process that is the network match maker. In some implementations there are one or more additional servers that are also used for supporting the networked application. The clients are selected into matched sets based on attributes of their users, the clients, application class and instance, the attributes of the servers and the properties of the client-to-client and client-to-server communications links. The network match maker works with three forms of network application implementation: peer-to-peer, multiple clients to a single server and multiple clients to multiple servers.
The present invention presents a network match making system that solves the above described problems in the prior art and provides an automated means for users to be matched with one another for a networked application. The network match maker not only takes into account the users preferences and attributes, but the attributes of the client computer, the application, any optional servers needed by the application and the properties of the communications links between the clients and the clients and any optional servers.
These and other features and advantages of the present invention will become apparent from the following detailed description of the invention and accompanying drawings.